// pages/query/manual-query.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    queryType: '', // 查询类型：registration-登记查询，family-亲友查询
    queryContent: '', // 查询内容
    queryForm: {
      name: '',
      idCard: '',
      volunteerId: '',
      registrationId: '',
      donationId: ''
    },
    relationProof: null, // 关系证明文件
    queryResult: null // 查询结果
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const { queryType, queryContent, verified } = options;
    this.setData({
      queryType: queryType || 'registration',
      queryContent: queryContent || '',
      verified: verified === 'true'
    });
    
    // 设置页面标题
    wx.setNavigationBarTitle({
      title: '手动查询'
    });
  },

  /**
   * 处理表单输入
   */
  onInputChange(e) {
    const field = e.currentTarget.dataset.field;
    const value = e.detail.value;
    const queryForm = { ...this.data.queryForm };
    queryForm[field] = value;
    this.setData({
      queryForm: queryForm
    });
  },

  /**
   * 上传关系证明
   */
  uploadRelationProof() {
    wx.chooseImage({
      count: 1,
      sizeType: ['compressed'],
      sourceType: ['album', 'camera'],
      success: (res) => {
        this.setData({
          relationProof: res.tempFilePaths[0]
        });
        wx.showToast({
          title: '上传成功',
          icon: 'success'
        });
      }
    });
  },

  /**
   * 提交查询
   */
  submitQuery() {
    const { queryForm, queryType, queryContent } = this.data;
    
    if (!this.validateForm()) {
      return;
    }

    // 显示加载提示
    wx.showLoading({
      title: '查询中...',
      mask: true
    });

    // 模拟查询请求
    setTimeout(() => {
      wx.hideLoading();
      
      // 生成模拟结果
      const result = this.generateMockResult(queryType, queryContent);
      
      this.setData({
        queryResult: result
      });

      // 滚动到结果区域
      wx.pageScrollTo({
        selector: '.result-section',
        duration: 300
      });
    }, 2000);
  },

  /**
   * 验证表单
   */
  validateForm() {
    const { queryForm, queryType } = this.data;
    
    if (!queryForm.name.trim()) {
      wx.showToast({
        title: '请输入姓名',
        icon: 'none'
      });
      return false;
    }
    
    if (!queryForm.idCard.trim()) {
      wx.showToast({
        title: '请输入身份证号',
        icon: 'none'
      });
      return false;
    }
    
    // 验证身份证号格式
    const idCardRegex = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
    if (!idCardRegex.test(queryForm.idCard)) {
      wx.showToast({
        title: '身份证号格式不正确',
        icon: 'none'
      });
      return false;
    }
    
    // 亲友查询需要上传关系证明
    if (queryType === 'family' && !this.data.relationProof) {
      wx.showToast({
        title: '请上传关系证明',
        icon: 'none'
      });
      return false;
    }
    
    return true;
  },

  /**
   * 生成模拟查询结果
   */
  generateMockResult(queryType, content) {
    const baseResult = {
      title: this.getContentTitle(content),
      status: 'success',
      statusText: '查询成功',
      details: []
    };

    // 根据不同的查询内容生成不同的结果
    switch (content) {
      case 'volunteer':
        baseResult.details = [
          { key: 'name', label: '志愿者姓名', value: '张三' },
          { key: 'id', label: '志愿者编号', value: 'V2024001' },
          { key: 'level', label: '志愿者等级', value: '黄金志愿者' },
          { key: 'joinDate', label: '加入时间', value: '2024-01-15' },
          { key: 'serviceHours', label: '服务时长', value: '365小时' }
        ];
        break;
        
      case 'registration':
        baseResult.details = [
          { key: 'name', label: '登记人姓名', value: '李四' },
          { key: 'id', label: '登记编号', value: 'R2024001' },
          { key: 'date', label: '登记日期', value: '2024-01-20' },
          { key: 'status', label: '登记状态', value: '已审核通过' },
          { key: 'type', label: '捐献类型', value: '遗体捐献' }
        ];
        break;
        
      case 'progress':
        baseResult.details = [
          { key: 'name', label: '捐献人姓名', value: '王五' },
          { key: 'id', label: '捐献编号', value: 'D2024001' },
          { key: 'status', label: '捐献状态', value: '已完成' },
          { key: 'date', label: '捐献日期', value: '2024-02-15' },
          { key: 'progress', label: '处理进度', value: '100%' }
        ];
        break;
        
      case 'donation':
        baseResult.details = [
          { key: 'name', label: '捐赠人姓名', value: '赵六' },
          { key: 'id', label: '捐赠编号', value: 'DN2024001' },
          { key: 'amount', label: '捐赠金额', value: '1000元' },
          { key: 'date', label: '捐赠日期', value: '2024-01-25' },
          { key: 'purpose', label: '捐赠用途', value: '器官捐献宣传' }
        ];
        break;
        
      case 'body':
        baseResult.details = [
          { key: 'name', label: '逝者姓名', value: '陈七' },
          { key: 'id', label: '管理编号', value: 'BM2024001' },
          { key: 'status', label: '管理状态', value: '已完成' },
          { key: 'date', label: '处理日期', value: '2024-02-20' },
          { key: 'location', label: '存放位置', value: '纪念园A区' }
        ];
        break;
    }

    return baseResult;
  },

  /**
   * 获取内容标题
   */
  getContentTitle(content) {
    const titleMap = {
      'volunteer': '志愿者证查询结果',
      'registration': '登记表查询结果',
      'progress': '捐献进度查询结果',
      'donation': '捐赠编号查询结果',
      'body': '遗体管理情况查询结果'
    };
    return titleMap[content] || '查询结果';
  },

  /**
   * 下载查询结果
   */
  downloadResult() {
    wx.showToast({
      title: '下载功能开发中',
      icon: 'none'
    });
  },

  /**
   * 分享查询结果
   */
  shareResult() {
    wx.showShareMenu({
      withShareTicket: true,
      menus: ['shareAppMessage', 'shareTimeline']
    });
  },

  /**
   * 返回上一页
   */
  goBack() {
    wx.navigateBack();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    wx.stopPullDownRefresh();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    return {
      title: '器官捐献信息查询',
      path: '/pages/query/query',
      imageUrl: '/images/share-cover.png'
    };
  }
})
